import { ref, computed, watch } from 'vue'
import { useRoute, useRouter } from 'vue-router'

// 路由配置映射
const routeConfig = {
  '/': { title: '统计首页', icon: '📊' },
  '/dormitory/building': { title: '楼栋管理', parent: '宿舍管理', icon: '🏢' },
  '/dormitory/room': { title: '房间管理', parent: '宿舍管理', icon: '🏠' },
  '/dormitory/bed': { title: '床位管理', parent: '宿舍管理', icon: '🛏️' },
  '/dormitory/allocation': { title: '宿舍分配', parent: '宿舍管理', icon: '👥' },
  '/dormitory/room-label': { title: '宿舍标签管理', parent: '宿舍管理', icon: '🏷️' },
  '/user/student': { title: '学生信息管理', parent: '用户管理', icon: '👨‍🎓' },
  '/user/profession': { title: '专业管理', parent: '用户管理', icon: '🎓' },
  '/user/maintainer': { title: '维修人员信息管理', parent: '用户管理', icon: '🔧' },
  '/system/user': { title: '用户管理', parent: '系统管理', icon: '👤' },
  '/system/role': { title: '角色管理', parent: '系统管理', icon: '👥' },
  '/system/permission': { title: '权限管理', parent: '系统管理', icon: '🔐' },
  '/repair/create': { title: '创建工单', parent: '维修工单管理', icon: '➕' },
  '/repair/list': { title: '维修工单列表', parent: '维修工单管理', icon: '📋' },
  '/score/violation': { title: '违规违纪管理', parent: '评分管理', icon: '⚠️' },
  '/score/hygiene': { title: '宿舍卫生管理', parent: '评分管理', icon: '🧹' }
}

// 父级菜单配置
const parentConfig = {
  '宿舍管理': { icon: '🏢', path: null },
  '用户管理': { icon: '👥', path: null },
  '系统管理': { icon: '⚙️', path: null },
  '维修工单管理': { icon: '🔧', path: null },
  '评分管理': { icon: '⭐', path: null }
}

export function useBreadcrumb() {
  const route = useRoute()
  const router = useRouter()
  
  const breadcrumbItems = ref([])
  
  // 生成面包屑
  const generateBreadcrumb = (currentPath) => {
    const items = []
    
    // 添加首页
    items.push({
      title: '宿舍管理后台',
      path: '/',
      icon: '🏠',
      isHome: true
    })
    
    // 获取当前路由配置
    const currentRoute = routeConfig[currentPath]
    if (currentRoute) {
      // 如果有父级菜单，添加父级
      if (currentRoute.parent) {
        items.push({
          title: currentRoute.parent,
          path: null,
          icon: parentConfig[currentRoute.parent]?.icon || '📁',
          isParent: true
        })
      }
      
      // 添加当前页面
      items.push({
        title: currentRoute.title,
        path: currentPath,
        icon: currentRoute.icon,
        isCurrent: true
      })
    }
    
    return items
  }
  
  // 更新面包屑
  const updateBreadcrumb = () => {
    breadcrumbItems.value = generateBreadcrumb(route.path)
  }
  
  // 监听路由变化
  watch(
    () => route.path,
    () => {
      updateBreadcrumb()
    },
    { immediate: true }
  )
  
  // 点击面包屑项
  const handleBreadcrumbClick = (item) => {
    if (item.path && !item.isCurrent) {
      router.push(item.path)
    }
  }
  
  // 计算属性
  const breadcrumbText = computed(() => {
    return breadcrumbItems.value.map(item => item.title).join(' / ')
  })
  
  return {
    breadcrumbItems,
    breadcrumbText,
    handleBreadcrumbClick,
    updateBreadcrumb
  }
}
